## API Report File for "@backstage/plugin-catalog-backend-module-puppetdb"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
import { Config } from '@backstage/config';
import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { JsonValue } from '@backstage/types';
import { Logger } from 'winston';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
import { ResourceEntity } from '@backstage/catalog-model';
import { TaskRunner } from '@backstage/backend-tasks';
import { TaskScheduleDefinition } from '@backstage/backend-tasks';

// @public
export const ANNOTATION_PUPPET_CERTNAME = 'puppet.com/certname';

// @public
export const DEFAULT_PROVIDER_ID = 'default';

// @public
export const defaultResourceTransformer: ResourceTransformer;

// @public
export class PuppetDbEntityProvider implements EntityProvider {
  // (undocumented)
  connect(connection: EntityProviderConnection): Promise<void>;
  static fromConfig(
    config: Config,
    deps: {
      logger: Logger;
      schedule?: TaskRunner;
      scheduler?: PluginTaskScheduler;
      transformer?: ResourceTransformer;
    },
  ): PuppetDbEntityProvider[];
  // (undocumented)
  getProviderName(): string;
  refresh(logger: Logger): Promise<void>;
}

// @public
export type PuppetDbEntityProviderConfig = {
  id: string;
  baseUrl: string;
  query?: string;
  schedule?: TaskScheduleDefinition;
};

// @public
export type PuppetFact = {
  name: string;
  value: JsonValue;
};

// @public
export type PuppetFactSet = {
  data: PuppetFact[];
  href: string;
};

// @public
export type PuppetNode = {
  timestamp: string;
  certname: string;
  latest_report_status: string;
  hash: string;
  producer_timestamp: string;
  producer: string;
  environment: string;
  facts: PuppetFactSet;
};

// @public
export type ResourceTransformer = (
  node: PuppetNode,
  config: PuppetDbEntityProviderConfig,
) => Promise<ResourceEntity | undefined>;
```
